#pragma region Licensing
/*
       LOGL::GLib -> LorgonJortle's OpenGL Game Library
       Copyright (C) 2011  Jesse 'LorgonJortle' Wilkerson

       This program is free software: you can redistribute it and/or modify
       it under the terms of the GNU General Public License as published by
       the Free Software Foundation, either version 3 of the License, or
       (at your option) any later version.

       This program is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       GNU General Public License for more details.

       You should have received a copy of the GNU General Public License
       along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
#pragma endregion

#include "GameObject.h"

namespace LOGL_GLib
{
     namespace Common
     {
          /******************************************************************************
           GameObject::GameObject();
                    Arguments:
                         void

                    Description:
                         Construct a GameObject.

                    Returns:
                         The GameObject object.
          *******************************************************************************/
          GameObject::GameObject() : GameComponent()
          {
               Name = "Game Object";
          }

          /******************************************************************************
           GameObject::GameObject(const std::string& _Name);
                    Arguments:
                         const std::string& _Name:
                              The name of the object.

                    Description:
                         Construct a GameObject with the specified name.

                    Returns:
                         The GameObject object.
          *******************************************************************************/
          GameObject::GameObject(const std::string& _Name) : GameComponent(_Name)
          {
               Name = _Name;
          }

          /******************************************************************************
           GLvoid GameObject::Update();
                    Arguments:
                         void

                    Description:
                         Handles logic for the GameObject.

                    Returns:
                         void
          *******************************************************************************/
          GLvoid GameObject::Update()
          {
               GameComponent::Update();
          }

          /******************************************************************************
           GLvoid GameObject::Draw();
                    Arguments:
                         void

                    Description:
                         Renders the GamObject to the back buffer.

                    Returns:
                         void
          *******************************************************************************/
          GLvoid GameObject::Draw()
          {
               GameComponent::Draw();
          }

          /******************************************************************************
           std::string GameObject::ToString() const;
                    Arguments:
                         void

                    Description:
                         Returns a string representation of the object.

                    Returns:
                         A string representation of the object.
          *******************************************************************************/
          std::string GameObject::ToString() const
          {
               return Name;
          }

     } /* Namespace Common. */
} /* Namespace LOGL_GLib. */
